File:of Disk: Disks/Working/Build-11-03-07
(Source file text)
(IX,JX,1) IF (DAMAGE(8).LT.0) GOTO 2470 ARRAY(IX,JX,2) = ARRAY(IX,JX,1) GOTO 2470 2460 LONG(JX-QUAD2+2) = 0 2470 CONTINUE WRITE (4,2472) LONG(1),LONG(2),LONG(3) 2472 FORMAT (1X,':',I4,' :',I4,' :',I4,' :') WRITE (4,2380) 2500 CONTINUE GOTO HELL C ************************************************** C THIS IS THE DAMAGE CONTROL REPORT CODE C ************************************************** 3560 IF (DAMAGE(6).GE.0) GOTO 3580 WRITE (4,3570) 3570 FORMAT (1X,'DAMAGE CONTROL REPORT IS NOT AVAILABLE') GOTO HELL 3580 WRITE (4,3590) DAMAGE(1),DAMAGE(2),DAMAGE(3),DAMAGE(4), 1 DAMAGE(5),DAMAGE(6),DAMAGE(7),DAMAGE(8) 3590 FORMAT (/,1X,'DAMAGE CONTROL REPORT:',//, 1 1X,'DEVICE STATE OF REPAIR',/, 2 1X,'WARP DRIVE',T27,F16.2,/,1X,'S.R. SENSORS',T27,F16.2,/, 3 1X,'L.R. SENSORS',T27,F16.2,/,1X,'PHASER CONTROL',T27,F16.2,/, 4 1X,'PHOTON TUBES',T27,F16.2,/,1X,'DAMAGE CONTROL',T27,F16.2,/, 5 1X,'SHIELD CONTROL',T27,F16.2,/,1X,'COMPUTER',T27,F16.2,/) GOTO HELL C ************************************************** C THIS IS THE SHIELD CONTROL CODE C ************************************************** 3460 IF (DAMAGE(7).GE.0) GOTO 3480 WRITE (4,3470) 3470 FORMAT (1X,'SHIELD CONTROL IS NON-OPERATIONAL') GOTO HELL 3480 TEMP=ENERGY+SHIELD WRITE (4,3490) TEMP 3490 FORMAT (1X,'ENERGY AVAILABLE = ',I5,/, 1 4X,'NUMBER OF UNITS TO SHIELDS:?',$) READ (4,1290) ITEMP IF (ITEMP.LT.0) GOTO HELL IF (ENERGY+SHIELD-ITEMP.LT.0) GOTO 3480 ENERGY = ENERGY+SHIELD-ITEMP SHIELD = ITEMP GOTO HELL C ************************************************** C LIBRARY COMPUTER CODE C ************************************************** 4630 IF (DAMAGE(8).GE.0) GOTO 4660 WRITE (4,4640) 4640 FORMAT (1X,'COMPUTER DISABLED') GOTO HELL 4660 WRITE (4,4662) 4662 FORMAT(1X,'COMPUTER ACTIVE AND AWAITING COMMAND:?',$) READ (4,1290) ITEMP IF (ITEMP.EQ.0) GOTO 4740 IF (ITEMP.EQ.1) GOTO 4830 IF (ITEMP.EQ.2) GOTO 4880 WRITE (4,4690) 4690 FORMAT (1X,'FUNCTIONS AVIALABLE FROM COMPUTER',/,4X, 1 '0 = CUMULATIVE GALACTIC RECORD',/,4X, 2 '1 = STATUS REPORT',/,4X,'2 = PHOTON TORPEDO DATA') GOTO 4660 C CUMULATIVE GALACTIC RECORD CODE BEGINS HERE 4740 WRITE (4,4750) 4750 FORMAT (1X,'COMPUTER RECORD OF GALAXY FOR ALL LONG RANGE 1 SENSOR SCANS',/,6X,'1 2 3 4 5 2 6 7 8') WRITE (4,4770) 4770 FORMAT(4X,'----- ----- ----- ----- ----- ----- ----- -----') DO 4810 I=1,8 WRITE (4,4795) I,ARRAY(I,1,2),ARRAY(I,2,2),ARRAY(I,3,2), 1 ARRAY(I,4,2),ARRAY(I,5,2),ARRAY(I,6,2),ARRAY(I,7,2),ARRAY(I,8,2) 4795 FORMAT(1X,I2,T5,I3,T11,I3,T17,I3,T23,I3,T29,I3,T35,I3,T41,I3, 1 T47,I3) WRITE (4,4770) 4810 CONTINUE GOTO HELL C STATUS REPORT CODE BEGINS HERE 4830 TEMP=TIME0+DATLFT-TIME WRITE (4,4840) TKLING,TEMP,TBASES 4840 FORMAT (4X,'STATUS REPORT',/,1X, 1 'NUMBER OF KLINGONS LEFT = ',I3,/,1X, 2 'NUMBER OF STARDATES LEFT = ',F7.1,/,1X, 3 'NUMBER OF STARBASES LEFT = ',I3) C TRANSFER TO DAMAGE CONTROL REPORT CODE GOTO 3560 C LIBRARY PHOTON TORPEDO DATA CODE BEGINS HERE 4880 PH8 = 0 DO 5260 I=1,3 IF (KLINST(I,3).LE.0) GOTO 5260 PC1 = SECT1 PA = SECT2 PW1 = KLINST(I,1) PX = KLINST(I,2) GOTO 5010 4970 WRITE (4,4972)QUAD1,QUAD2,SECT1,SECT2 4972 FORMAT(1X,'YOU ARE AT QUADRANT (',I3,' ,',I3,' ) SECTOR (', 1 I3,' ,',I3,' )',/,1X,'SHIP AND TARGET COORDINATES ARE:?',$) READ (4,4990)PC1,PA,PW1,PX 4990 FORMAT(4F16.0) 5010 PX = PX-PA PA = PC1-PW1 IF (PX.LT.0) GOTO 5130 IF (PA.LT.0) GOTO 5190 IF (PX.GT.0) GOTO 5070 IF (PA.EQ.0) GOTO 5150 5070 PC1 = 1. 5080 IF (ABS(PA).LE.ABS(PX)) GOTO 5110 TEMP = PC1+(((ABS(PA)-ABS(PX))+ABS(PA))/ABS(PA)) WRITE (4,5090)TEMP 5090 FORMAT(1X,'DIRECTION = ',G16.6) GOTO 5240 5110 TEMP=PC1+(ABS(PA)/ABS(PX)) WRITE (4,5090) TEMP GOTO 5240 5130 IF (PA.GT.0) GOTO 5170 IF (PX.GT.0) GOTO 5190 5150 PC1 = 5. GOTO 5080 5170 PC1 = 3. GOTO 5200 5190 PC1 = 7. 5200 IF (ABS(PA).GE.ABS(PX)) GOTO 5230 TEMP=PC1+(((ABS(PX)-ABS(PA))+ABS(PX))/ABS(PX)) WRITE (4,5090) TEMP GOTO 5240 5230 TEMP=PC1+(ABS(PX)/ABS(PA)) WRITE (4,5090) TEMP 5240 TEMP=SQRT(PX**2+PA**2) WRITE (4,5242) TEMP 5242 FORMAT(1X,'DISTANCE = ',G16.6) IF (PH8.EQ.1) GOTO HELL 5260 CONTINUE PH8 = 0. 5280 WRITE (4,5282) 5282 FORMAT(1X,'DO YOU WANT TO USE THE CALCULATOR?',$) READ (4,40) ANSWER IF (ANSWER.EQ.YES) GOTO 4970 IF (ANSWER.EQ.NO) GOTO HELL WRITE (4,50) GOTO 5280 C *********************************************** C THIS IS COMMAND 69 - CHEAT/TEST/DEBUG C *********************************************** 10000 WRITE (4,10010) ARRAY 10010 FORMAT(8I5) GOTO HELL 20000 WRITE (4,20010) 20010 FORMAT (6X,'INSTRUCTIONS',//, 1 1X,'THE GALAXY IS DIVIDED INTO AN 8,8 QUADRANT GRID',/, 2 1X,'WHICH IS IN TURN DIVIDED INTO AN 8,8 SECTOR GRID.',//, 3 1X,'THE CAST OF CHARACTERS IS AS FOLLOWS:',/, 4 1X,'<*> = ENTERPRISE',/,1X,'+++ = KLINGON',/,1X,'>!< = 5 STARBASE',/) WRITE (4,20011) 20011 FORMAT(2X,'* = STAR',/,1X,'COMMAND 0 = WARP ENGINE CONTROL:',/, 1 3X,'COURSE IS IN A CIRCULAR NUMERICAL 4 3 2',/, 2 3X,'VECTOR ARRANGEMENT AS SHOWN. \ ^ /',/, 3 3X,'INTEGER AND REAL VALUES MAY BE \^/',/, 4 3X,'USED. THEREFORE COURSE 1.5 IS 5 ----- 1') WRITE (4,20020) 20020 FORMAT(3X,'HALF WAY BETWEEN 1 AND 2. /!\',/, 1 43X,'/ ! \',/, 2 3X,'A VECTOR OF 9 IS UNDEFINED, BUT 6 7 8',/, 3 3X,'VALUES MAY APPROACH 9.',17X,'COURSE',//, 4 3X,'ONE WARP FACTOR IS THE SIZE OF',/, 5 3X,'ONE QUADRANT. THEREFORE TO GET',/) WRITE (4,20021) 20021 FORMAT(3X,'FROM QUADRANT 6,5 TO 5,5 YOU WOULD',/, 1 3X,'USE COURSE 3. WARP FACTOR 1.',//, 2 1X,'COMMAND 1 = SHORT RANGE SENSOR SCAN',/, 3 3X,'PRINTS THE QUADRANT YOU ARE CURRENTLY IN. INCLUDING') WRITE (4,20030) 20030 FORMAT(3X,'STARS, KLINGONS, STARBASES, AND THE ENTERPRISE. 1 ALONG',/, 2 3X,'WITH OTHER PERTINATE INFORMATION.',//, 3 1X,'COMMAND 2 = LONG RANGE SENSOR SCAN',/, 4 3X,'SHOWS CONDITIONS IN SPACE FOR ONE QUADRANT ON EACH SIDE',/, 5 3X,'OF THE ENTERPRISE IN THE MIDDLE OF THE SCAN. THE SCAN') WRITE (4,20031) 20031 FORMAT(3X,'IS CODED IN THE FORM "KBS", WHERE K IS THE NUMBER',/, 1 3X,'OF KLINGONS, B IS THE NUMBER OF STARBASES, AND S IS',/, 2 3X,'THE NUMBER OF STARS.',//, 3 1X,'COMMAND 3 = PHASER CONTROL',/, 4 3X,'ALLOWS YOU TO DESTROY THE KLINGONS BY HITTING THEM WITH') WRITE (4,20040) 20040 FORMAT(3X,'SUITABLY LARGE NUMBERS OF ENERGY UNITS TO DEPLETE 1 THEIR',/, 2 3X,'SHIELD POWER. KEEP IN MIND THAT WHEN YOU SHOOT AT THEM.',/, 3 3X,'THEY GONNA SHOOT AT YOU, TOO!',//, 4 1X,'COMMAND 4 = PHOTON TORPEDO CONTROL',/, 5 3X,'COURSE IS THE SAME AS USED IN WARP ENGINE CONTROL') WRITE (4,20041) 20041 FORMAT(3X,'IF YOU HIT THE KLINGON, HE IS DESTROYED AND CANNOT', 1 /,3X,'FIRE BACK AT YOU. IF YOU MISS, YOU ARE SUBJECT TO HIS', 2 /,3X,'PHASER FIRE.',//, 3 3X,'NOTE: THE LIBRARY COMPUTER (COMMAND 7) HAS AN OPTION',/, 4 3X,'TO COMPUTE TORPEDO TRAJECTORY FOR YOU (OPTION 2).',/) WRITE (4,20050) 20050 FORMAT(1X,'COMMAND 5 = SHIELD CONTROL',/, 1 3X,'DEFINES NUMBER OF ENERGY UNITS TO BE ASSIGNED TO SHIELDS.', 2 /,3X,'ENERGY IS TAKEN FROM TOTAL SHIP''S ENERGY.',/, 3 3X,'NOTE: TOTAL ENERGY INCLUDES SHIELD ENERGY.',//, 4 1X,'COMMAND 6 = DAMAGE CONTROL REPORT',/, 5 3X,'GIVES STATE OF REPAIRS OF ALL DEVICES. A STATE OF REPAIR') WRITE (4,20051) 20051 FORMAT(/,3X,'LESS THAN ZERO SHOWS THAT THE DEVICE IS ',/, 1 3X,'TEMPORALLY DAMAGED.',//, 2 1X,'COMMAND 7 = LIBRARY COMPUTER',/, 3 3X,'THE LIBRARY COMPUTER CONTAINS THREE OPTIONS:') WRITE (4,20060) 20060 FORMAT(5X,'OPTION 0 = CUMULATIVE GALACTIC RECORD',/, 1 7X,'WHICH SHOWS COMPUTER MEMORY OF THE RESULTS',/, 2 7X,'OF ALL PREVIOUS LONG RANGE SENSOR SCANS.',/, 3 5X,'OPTION 1 = STATUS REPORT',/, 4 7X,'WHISH SHOWS NUMBER OF KLINGONS, STARBASES,',/, 5 7X,'AND STARDATES LEFT.',/) WRITE (4,20061) 20061 FORMAT(5X,'OPTION 2 = PHOTON TORPEDO DATA',/, 1 7X,'GIVES TRAJECTORY AND DISTANCE BETWEEN THE',/, 2 7X,'ENTERPRISE AND ALL KLINGONS IN YOUR QUADRANT',/, 3 7X,'IF YOU WISH TO USE THE COMPUTER''S CALCULATOR',/, 4 7X,'TO AID NAVIGATION OR DOCKING THEN ENTER',/, 5 7X,'COORDINATES (QUADRANT OR SECTOR)') WRITE (4,20062) 20062 FORMAT(7X,'OF SHIP AND TARGET - IN SOURCE,DESTINATION',/, 1 7X,'FORMAT - EG...S,S,T,T',/) WRITE (4,20070) 20070 FORMAT (1X,'COMMAND 8 = BEGIN NEW CONTEST',/, 1 3X,'STARTS PROGRAM OVER AGAIN WITH ALL NEW DATA.',/, 2 3X,'USED TO CREATE MORE CHALLENGING SETUP - IE: MORE',/, 3 3X,'KLINGONS AND FEWER STARBASES!',///) GOTO 100 END